package com.house.system.mapper;

import java.util.List;

import com.house.common.annotation.DataScope;
import com.house.system.domain.Contract;

/**
 * 合同信息Mapper接口
 * 
 * @author tc
 * @date 2022-02-04
 */
public interface ContractMapper 
{
    /**
     * 查询合同信息
     * 
     * @param contractId 合同信息主键
     * @return 合同信息
     */
    public Contract selectContractByContractId(Long contractId);

    /**
     * 查询合同信息列表
     * 
     * @param contract 合同信息
     * @return 合同信息集合
     */
    @DataScope(tableAlias = "c")
    public List<Contract> selectContractList(Contract contract);

    /**
     * 新增合同信息
     * 
     * @param contract 合同信息
     * @return 结果
     */
    public int insertContract(Contract contract);

    /**
     * 修改合同信息
     * 
     * @param contract 合同信息
     * @return 结果
     */
    public int updateContract(Contract contract);

    /**
     * 删除合同信息
     * 
     * @param contractId 合同信息主键
     * @return 结果
     */
    public int deleteContractByContractId(Long contractId);

    /**
     * 批量删除合同信息
     * 
     * @param contractIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteContractByContractIds(Long[] contractIds);

    /**
     * 查询合同信息
     * @param houseId 房屋编号
     * @return
     */
    Contract selectContractByHouseId(Long houseId);

    /**
     * 找到所有生效状态的合同
     * @return
     */
    List<Contract> selectEffectContract();
}
